package com.xuelang.pipeline.infrastructure.pipeline.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xuelang.pipeline.infrastructure.pipeline.dataobject.TagDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

/**
 * 流水线标签数据Mapper
 *
 * @author xiwen.zxg
 * @since 2024/5/15
 */
@Repository
public interface TagMapper extends BaseMapper<TagDO> {

    /**
     * 批量插入
     * @param list
     * @param creatorId
     * @param createTime
     */
    void insertBatch(@Param("list") List<TagDO> list,
                     @Param("creatorId") String creatorId,
                     @Param("createTime") Date createTime);

    /**
     * 批量更新
     * @param list
     * @param updaterId
     * @param updateTime
     */
    void updateBatch(@Param("list") List<TagDO> list,
                     @Param("updaterId") String updaterId,
                     @Param("updateTime") Date updateTime);

    /**
     * 根据UUID列表删除标签
     * @param uuids 标签UUID列表
     */
    void deleteByUuids(@Param("uuids") List<String> uuids);

    /**
     * 获取所有标签UUID
     * @return 标签UUID列表
     */
    List<String> selectAllUuids();

}
